package 数组题目.数组排序;

//有序数组平方
//https://leetcode.cn/problems/squares-of-a-sorted-array/
//给你一个按 非递减顺序 排序的整数数组 nums，返回 每个数字的平方 组成的新数组，要求也按 非递减顺序 排序。
class 有序数组平方 {
    public int[] sortedSquares(int[] nums) {
        int l = 0, r = nums.length - 1;
        int[] ans = new int[nums.length];
        int cur = nums.length - 1;
        while (cur >= 0) {
            if (Math.abs(nums[l]) <= Math.abs(nums[r])) {
                ans[cur--] = nums[r] * nums[r];
                r--;
            } else {
                ans[cur--] = nums[l] * nums[l];
                l++;
            }
        }
        return ans;
    }

    public static void main(String[] args) {
        new 有序数组平方().sortedSquares(new int[]{-4, -1, 0, 3, 10});
    }
}
